Установка composer

Для начала необходимо установить сам компосер. Если у вас ОС windows и opsenServer, то в нем уже компосер установлен и готов к работе, если же нет, то устанавливаем его как описано здесь: Установка Composer на Windows. Если же вы используете linux, то вам сюда: Установка composer глобально для Linux/Unix/OSX

Настраиваем автозагрузку пакетов для Yii Framrwork

После или перед тем как вы загрузите требуемый вам и вашему проекту пакет (пакеты) нужно обеспечить автозагрузку пакета (пакетов) в проекте. Так как composer будет складывать все пакеты в папку /vendor необходимо включить эту папку в автозагрузку. Для этого необходимо внести некоторые изменения в код Yii Framework, а именно добавить код:

require __DIR__ . '/vendor/autoload.php';

В следующие файлы: index.php, protected/yiic.php, protected/tests/bootstrap.php.

Есть также альтернативный метод подключения автозагрузки, в начале файла protected/config/main.php добавляем:

require_once( dirname(__FILE__) . '/../../vendor/autoload.php');

Скрываем файлы и папки composer'а от лишних глаз

Добавляем следующий код в корневой .htaccess чтобы запретить доступ к /vendor, composer.phar, composer.json, composer.lock и перенаправить запрос на index.php для этого добавляем следующий код (.htaccess):

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} vendor/ [OR]
RewriteCond %{REQUEST_FILENAME} composer.phar [OR]
RewriteCond %{REQUEST_FILENAME} composer.json [OR]
RewriteCond %{REQUEST_FILENAME} composer.lock
RewriteRule . index.php

Загружаем пакет с помощью composer

Для загрузки требуемого пакета выполняем команду (обычно эти команды описаны в инструкции к пакету):

php ./composer.phar require packegeName

или

composer require packegeName

Все, наслаждаемся работой Yii1 и composer.

Пример загрузки пакета через composer в Yii1 и работа с ним

Пример #1

И так, возьмем любой пакет для тестов, первое что мне попалось - это Endroid QR Code (https://packagist.org/packages/endroid/qrcode). Открываем консоль, переходим в корень проекта и выполняем команду установки:

composer require endroid/qrcode

Ждем пока все будет скачано, а затем открываем любое представление (view) или действие (action), добавляем код из инструкции:

<?php

use Endroid\QrCode\ErrorCorrectionLevel;
use Endroid\QrCode\LabelAlignment;
use Endroid\QrCode\QrCode;
use Symfony\Component\HttpFoundation\Response;

$qrCode = new QrCode('Composer + Yii | Кодер.укр');
$qrCode->setSize(300);

$qrCode
    ->setWriterByName('png')
    ->setMargin(10)
    ->setEncoding('UTF-8')
    ->setErrorCorrectionLevel(ErrorCorrectionLevel::LOW)
    ->setValidateResult(false);

header('Content-Type: '.$qrCode->getContentType());
echo $qrCode->writeString();

$qrCode->writeFile(__DIR__.'/qrcode.png');

$response = new Response($qrCode->writeString(), Response::HTTP_OK, ['Content-Type' => $qrCode->getContentType()]);

И получаем рабочее расширение в нашем проекте на Yii Framework.

Пример #2

Для чистоты эксперимента возьмем еще один (второй попавшийся) пакет (https://github.com/dompdf/dompdf) и установим его:

composer require dompdf/dompdf

И заставим работать как и предыдущий. Открываем любое представление (view) или действие (action), добавляем код из инструкции:

<?php

use Dompdf\Dompdf;

$dompdf = new Dompdf();
$dompdf->loadHtml('Composer + Yii | Кодер.укр');
$dompdf->setPaper('A4', 'landscape');
$dompdf->render();
$dompdf->stream();

Запускаем и наслаждаемся)